% coding: utf-8

\section{Manual de uso}
\subsection{Requerimientos para compilar y ejecutar}
Esta aplicación se debe ejecutar en un entorno Windows. Los pasos a seguir para poder utilizarla son:
\begin{itemize}
\item Descargar \textit{Eclipse}  \footnote{http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR1/eclipse-dsl-juno-SR1-win32.zip}.
\item Descomprimir el archivo $eclipse-dsl-juno-SR1-win32.zip$ 
\item Ejecutar el archivo \textit{Eclipse.exe} directamente de la carpeta que se extrajo del zip
\item Una vez abierto el Eclipse, importar el proyecto:
\begin{center}
\item File $\rightarrow$ Import $\rightarrow$ Existing projects into Workspace 
\end{center}
y se selecciona el directorio donde está el proyecto.
\item Luego de importar el proyecto, es necesario incluir las librerías de Antlr: Project $\rightarrow$ Properties $\rightarrow$ Java Build Path $\rightarrow$ Libraries $\rightarrow$ Add External JARs...
\item Seleccionar el archivo $antlrworks-1.4.3.jar$ \footnote{http://www.antlr.org/download/antlrworks-1.4.3.jar} \item Ejecutar el proyecto: Run $\rightarrow$ Run
\end{itemize}

\subsection{Interfaz y modo de uso}
Se cuenta con una interfaz inicial en la que se muestran distintas opciones de ejecución: 
\begin{enumerate}
\item Entrada por consola: Luego de elegir esta opción, la aplicación esperará que el usuario ingrese una cadena y luego presione \textit{Enter}.
\item Entrada por archivo: Se esperará que el usuario ingrese la ruta completa hacia el archivo que desee tomar como entrada.
\item Cadena 'unidades m;': El lexer y el parser tomarán como entrada a este ejemplo. Es una cadena válida
\item Cadena '1/2;': El lexer y el parser tomarán como entrada a este ejemplo. Es una cadena válida
\item Cadena 'a ; var a;': El lexer y el parser tomarán como entrada a este ejemplo. Es una cadena inválida
\item Entrada por archivo en una ruta default: Toma el archivo a partir de ''$d:\backslash entrada.txt$''
\end{enumerate}

Cada vez que se analiza una cadena, el programa espera recibir una nueva opción de tipo de entrada, para volver a realizar un análisis. La forma de cerrar el programa es escribiendo ``exit`` como opción
